package com.rp.control.operation.data.local;

import java.util.List;

import android.content.Context;

import com.rp.control.operation.Operacao;
import com.rp.control.operation.OperationResult;
import com.rp.dao.IProdutoEstabelecimentoDAO;
import com.rp.dao.local.ProdutoEstabelecimentoLDAO;
import com.rp.dao.remote.ProdutoEstabelecimentoDAO;
import com.rp.model.Produto;
import com.rp.model.ResultadoPesquisa;
import com.rp.view.ItemListaPesquisaProduto;

public class BuscarValorProduto extends Operacao {
    private ResultadoPesquisa resultado;
    private Produto produto;
    private Context context;

    public BuscarValorProduto(Context context, Produto produto) {
	this.context = context;
	this.produto = produto;
    }

    @Override
    public void execute() throws Throwable {
	try {
	    IProdutoEstabelecimentoDAO prodEstabDao = new ProdutoEstabelecimentoLDAO(
		    context);
	    List<ItemListaPesquisaProduto> data = prodEstabDao
		    .buscaPorProduto(produto.getCodigo());
	    if (data.size() > 0) {
		operationResult = OperationResult.REGISTRO_ENCONTRADO;
	    } else {
		operationResult = OperationResult.REGISTRO_NAO_ENCONTRADO;
	    }
	    resultado = new ResultadoPesquisa(produto, data);
	} finally {
	    ProdutoEstabelecimentoDAO.get().close();
	}
    }

    public ResultadoPesquisa getResultado() {
	return resultado;
    }
}
